﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.Text.RegularExpressions;
using System.IO;
using System.Windows.Forms;

namespace Pobieracz
{
    class Wrzuta
    {
        #region Pola

        public List<string> listaTytulyWrzuta = new List<string>();
        public List<string> listaAdresyWrzuta = new List<string>();
        private WebRequest req = null;
        private string szukanaFraza, sciezkaTemp;
        public string wydobytaSciezka;
        public int licznikStronWrzuta;

        #endregion
        #region Konstruktor

        public Wrzuta(string _szukanaFraza)
        {
            szukanaFraza = _szukanaFraza;
        }

        #endregion
        #region Metody

        public void Wyszukiwanie()
        {
            listaAdresyWrzuta.Clear();
            listaTytulyWrzuta.Clear();
            licznikStronWrzuta = 1;

            string[] tab = new string[0];
            tab = szukanaFraza.Split(' ');
            string temp = "";
            for (int i = 0; i < tab.Length; i++)
            {
                temp = temp + tab[i] + "+";
            }
            temp = temp.Remove(temp.LastIndexOf("+"), 1);

            req = WebRequest.Create("http://www.wrzuta.pl/szukaj/audio/" + temp + "/" + licznikStronWrzuta.ToString());

            req.Credentials = CredentialCache.DefaultCredentials;
            HttpWebResponse odpowiedz = (HttpWebResponse)req.GetResponse();
            Stream strumien = odpowiedz.GetResponseStream();
            StreamReader sr = new StreamReader(strumien);
            string tekst = sr.ReadToEnd();

            string r1 = "<a href=.*class=\"thumb_url";
            string r2 = "alt=.*onload";
            Regex reg = new Regex(r1, RegexOptions.Multiline);
            Regex reg2 = new Regex(r2, RegexOptions.Multiline);
            MatchCollection ma = reg.Matches(tekst);
            MatchCollection ma2 = reg2.Matches(tekst);

            foreach (Match m in ma)
            {
                listaAdresyWrzuta.Add(m.ToString());
            }
            foreach (Match m in ma2)
            {
                listaTytulyWrzuta.Add(m.ToString());
            }
        }

        public void WyciaganieSciezkiDoPobrania(int inseksWybranegoUtowru)
        {
            int poczatekSciezka = listaAdresyWrzuta[inseksWybranegoUtowru].IndexOf("<a href=\"") + 9;
            int koniecSciezka = listaAdresyWrzuta[inseksWybranegoUtowru].Substring(poczatekSciezka).IndexOf("\" class=\"thumb_url");
            sciezkaTemp = listaAdresyWrzuta[inseksWybranegoUtowru].Substring(poczatekSciezka, koniecSciezka);

            sciezkaTemp = Regex.Replace(sciezkaTemp, "audio", "xml/plik");
            int poczatekID = sciezkaTemp.IndexOf("xml/plik/") + 9;
            string wynikID = sciezkaTemp.Substring(poczatekID, 11);
            sciezkaTemp = Regex.Replace(sciezkaTemp, ("xml/plik/" + wynikID), ("xml/plik/" + wynikID + "/wrzuta.pl/sa"));

            WebRequest req2 = WebRequest.Create(sciezkaTemp);
            req2.Credentials = CredentialCache.DefaultCredentials;
            HttpWebResponse odpowiedz2 = (HttpWebResponse)req2.GetResponse();
            Stream strumien2 = odpowiedz2.GetResponseStream();
            StreamReader sr2 = new StreamReader(strumien2);
            string daneUtworu = sr2.ReadToEnd();

            int poczatekSciezkaEnd = daneUtworu.IndexOf("<fileId>") + 17;
            int koniecSciezkaEnd = daneUtworu.Substring(poczatekSciezkaEnd).IndexOf("</fileId>") - 3;
            wydobytaSciezka = daneUtworu.Substring(poczatekSciezkaEnd, koniecSciezkaEnd);
        }
        #endregion
    }
}
